package net.goutalk.glcs.module.generator.dto;

import net.goutalk.glcs.common.model.generator.FormConfig;
import net.goutalk.glcs.module.generator.entity.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import net.goutalk.glcs.module.generator.entity.ListConfig;
import net.goutalk.glcs.module.generator.entity.OutputConfig;
import net.goutalk.glcs.module.generator.entity.TableStructureConfig;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;

/**
 * @title: CodeFirstDto
 * @Author tanyujie
 * @Date: 2022/4/30 22:42
 * @Version 1.0
 */
@Data
public class CodeFirstPreviewDto {
    /**
     * 数据库id
     */
    @NotNull(message = "数据库id不能为空！")
    private String databaseId;

    /**
     * 表结构配置
     */
    @Valid
    @NotNull(message = "表结构配置不能为空！")
    private List<TableStructureConfig> tableStructureConfigs;

    /**
     * 表单设计json
     */
    @NotNull(message = "表单设计不能为空！")
    private FormConfig formJson;

    /**
     * 列表配置
     */
    @NotNull(message = "列表配置不能为空！")
    @Valid
    private ListConfig listConfig;

    /**
     * 输出配置
     */
    @NotNull(message = "输出配置不能为空！")
    @Valid
    private OutputConfig outputConfig;

    @ApiModelProperty("表单事件")
    private Map<String, Object> formEventConfig;

    /**
     * 是否配置数据权限
     */
    @ApiModelProperty("是否数据权限")
    private Boolean isDataAuth;
}
